import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// 引入ElementUI
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import locale from 'element-ui/lib/locale/lang/zh-CN' // 中文语言

// 引入全局样式
import '@/styles/index.scss'

// 引入权限控制
import './permission'

// 全局过滤器
import * as filters from './filters'

// 注册ElementUI
Vue.use(ElementUI, { locale, size: store.getters.size || 'medium' })

// 注册全局过滤器
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

// 添加全局错误处理
Vue.config.errorHandler = function (err, vm, info) {
  console.error('Vue错误:', err)
  console.error('错误信息:', info)
  // 可以在这里添加错误上报服务
}

// 添加全局未捕获Promise错误处理
window.addEventListener('unhandledrejection', event => {
  console.error('未处理的Promise拒绝:', event.reason)
  // 防止默认处理（如将错误输出到控制台）
  event.preventDefault()
})

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})